package Learn;

import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

public class MapDemo2 {

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("111", "222");
        map.put("112", "223");
        map.put("113", "224");


        //第一种遍历方式 键找值
        //获取所有键 放到单列集合中 用单列集合的遍历方式遍历值
        Set<String> keys = map.keySet();

//        for (String key : keys) {
//            String value=map.get(key);
//            System.out.println(key+value);
//        }

//        Iterator<String> it=keys.iterator();
//        while(it.hasNext()){
//            String next = it.next();
//            String value=map.get(next);
//            System.out.println(next+" "+value);
//        }

//        keys.forEach(new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                String value=map.get(s);
//                System.out.println(s+" "+value);
//            }
//        });

//        keys.forEach(s -> {
//            String value = map.get(s);
//            System.out.println(s +" "+value);
//        });


        //第二种 键值对遍历方式
        //将 键值对对象放到一个单列集合里 再用单列集合进行遍历
        Set<Map.Entry<String, String>> kv = map.entrySet();

//        for (Map.Entry<String, String> entry : kv) {
//            System.out.println(entry);
//        }

//        Iterator<Map.Entry<String,String>> it=kv.iterator();
//        while(it.hasNext()){
//            Map.Entry<String, String> next = it.next();
//            System.out.println(next);
//        }

//        kv.forEach(s-> System.out.println(s));

        //第三种遍历方式  Lambda 表达式进行遍历

        //BigConsumer 函数式接口 可以传lambda表达式
//        map.forEach(new BiConsumer<String, String>() {
//            @Override
//            public void accept(String s, String s2) {
//                System.out.println(s+" "+s2);
//            }
//        });
        map.forEach((s, s1) -> System.out.println(s + "=" + s1));

    }


}
